package com.ds.admin.console.param;

import com.ds.admin.console.entity.Product;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Getter;
import lombok.Setter;
import jakarta.validation.constraints.Size;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 商品对象
 *
 * @author fusheng
 * @since 2024-09-10
 */
@Getter
@Setter
@AutoMapper(target = Product.class)
public class ProductParam {

	/**
	 * 主键ID（自增主键）
	 */
	@NotNull(message = "主键ID（自增主键）不能为空")
	private Long id;

	/**
	 * 名称
	 */
	@NotNull(message = "名称不能为空")
	private Integer name;

	/**
	 * 价格
	 */
	@NotNull(message = "价格不能为空")
	private BigDecimal price;

	/**
	 * 数量
	 */
	@NotNull(message = "数量不能为空")
	private Integer quantity;

	/**
	 * 描述
	 */
	@NotBlank(message = "描述不能为空")
	private String desc;

	/**
	 * 可销售库存
	 */
	@NotNull(message = "可销售库存不能为空")
	private Long saleableInventory;

	/**
	 * 已占用库存
	 */
	@NotNull(message = "已占用库存不能为空")
	private Long occupiedInventory;

	/**
	 * 状态
	 */
	@NotNull(message = "状态不能为空")
	private Integer status;

	/**
	 * 发售时间
	 */
	@NotNull(message = "发售时间不能为空")
	private Date saleTime;

	/**
	 * 操作人
	 */
	@NotNull(message = "操作人不能为空")
	private Long operatorId;

	/**
	 * 操作人
	 */
	@NotBlank(message = "操作人不能为空")
	@Size(max = 255)
	private String operatorName;

}
